HTML Form Protocol Attack
L'HTML Form Protocol Attack, anche chiamato cross-protocol scripting, è un sistema di attacco informatico scoperto nel 2001 da Jochen Topf, parte degli exploit-interprotocollo, che permette di utilizzare un browser per contattare servizi che utilizzano protocolli basati sul plaintext ASCII, come SMTP, NNTP, POP3, IMAP o IRC, cosa che potrebbe consentire di evitare protezioni come i firewall che non consentono agli utenti esterni di utilizzare determinati servizi. Altri esempi, scoperti intorno al 2016, ne vedono l'uso per sottrarre informazioni a Memcached e Reddis, attraverso un DNS rebinding.
Funzionamento[modifica | modifica wikitesto]
HTTP è un protocollo che utilizza il testo semplice, quindi se si utilizza un browser web su un altro servizio che utilizza anch'esso il testo semplice è possibile comunicare, anche se i due server non si capiranno, utilizzando comandi diversi.
Infatti, per HTTP una risposta senza header è considerata HTTP/0.9, uno standard più antico e pensato per funzionare con Telnet con comandi di una sola riga.
Utilizzando un modulo con la codifica multipart/form-data, è possibile inviare dati separati da nuove linee, che possono essere viste da un altro server come istruzioni, mentre i codici standard HTTP saranno ignorati.
Superficie di attacco[modifica | modifica wikitesto]
Con un sistema simile è possibile contattare qualsiasi servizio che utilizzi protocolli simili a HTTP che il computer possa raggiungere. Per esempio, permetterebbe di gestire caselle di posta elettronica senza essere notati, di comunicare con server FTP o di inviare messaggi attraverso IRC, tutto con dati che paiono azioni legittime. Si possono anche interrogare diversi database, che possono essere inviati al di fuori con altre tecniche.
Reazioni[modifica | modifica wikitesto]
Browser[modifica | modifica wikitesto]
La maggior parte dei browser ha bloccato le porte più a rischio di essere utilizzate per questi attacchi, qualora si provi ad accedervi via HTTP. Il primo a farlo è stato Netscape, all'epoca di Mozilla, e poi è stato segiuito dalla maggior parte degli altri produttori.
Chrome, dalla versione 55, ha bloccato il protocollo HTTP/0.9 su porte non utilizzate normalmente per il traffico web, riducendo così il rischio.
Altri[modifica | modifica wikitesto]
Diversi prodotti hanno introdotto il riconoscimento delle connessioni HTTP, con conseguente chiusura della comunicazione.